home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / boot / netBoot.new / dev / xtreg.h < prev    next >
C/C++ Source or Header  |  1990-12-19  |  3KB  |  89 lines

  1.  
  2. /*    @(#)xtreg.h 1.1 86/09/27 SMI    */
  3.  
  4. /*
  5.  * Copyright (c) 1986 by Sun Microsystems, Inc.
  6.  */
  7.  
  8. /*
  9.  * Xylogics 472 multibus tape controller
  10.  * IOPB definition.
  11.  */
  12. struct xtiopb {
  13.     /* Byte 1 */
  14.     u_char    xt_swab    : 1;    /* do byte swapping */
  15.     u_char    xt_retry   : 1;    /* enable retries */
  16.     u_char    xt_subfunc : 6;    /* sub-function code */
  17.     /* Byte 0 */
  18.     u_char    xt_autoup  : 1;    /* auto update of IOPB */
  19.     u_char    xt_reloc   : 1;    /* use relocation */
  20.     u_char    xt_chain   : 1;    /* command chaining */
  21.     u_char    xt_ie      : 1;    /* interrupt enable */
  22.     u_char    xt_cmd     : 4;    /* command */
  23.     /* Byte 3 */
  24.     u_char    xt_errno;    /* error number */
  25.     /* Byte 2 */    
  26.     u_char    xt_iserr   : 1;    /* error indicator */
  27.     u_char           : 2;
  28.     u_char    xt_ctype   : 3;    /* controller type */
  29.     u_char           : 1;
  30.     u_char    xt_complete: 1;    /* completion code valid  */
  31.     u_short    xt_status;    /* 5,4: various status bits */
  32.     /* Byte 7 */
  33.     u_char           : 5;
  34.     u_char    xt_unit    : 3;    /* unit number */
  35.     /* Byte 6 */
  36.     u_char    xt_bytebus : 1;    /* use byte transfers */
  37.     u_char           : 4;
  38.     u_char    xt_throttle: 3;    /* throttle control */
  39.     u_short    xt_cnt;        /* 9,8: requested count */
  40.     u_short    xt_bufoff;    /* b,a: buffer offset */
  41.     u_short    xt_bufrel;    /* d,c: buffer offset */
  42.     u_short    xt_nxtoff;    /* f,e: next iopb offset */
  43.     u_short    xt_acnt;    /* 11,10: actual count */
  44. };
  45.  
  46. /* commands */
  47. #define    XT_NOP        0x00    /* no operation */
  48. #define    XT_WRITE    0x01    /* write */
  49. #define    XT_READ        0x02    /* read */
  50. #define    XT_SEEK        0x05    /* position */
  51. #define    XT_DRESET    0x06    /* drive reset */
  52. #define    XT_FMARK    0x07    /* write file mark / erase */
  53. #define    XT_DSTAT    0x09    /* read drive status */
  54. #define    XT_PARAM    0x0B    /* set drive parameters */
  55. #define    XT_TEST        0x0C    /* self test */
  56.  
  57. /* Subfunction codes */
  58. #define    XT_REVERSE    0x20    /* reverse tape motion */
  59. #define    XT_REC        0    /* search for record marks */
  60. #define    XT_FILE        1    /* search for file marks */
  61. #define    XT_REW        2    /* rewind */
  62. #define    XT_UNLOAD    3    /* unload */
  63. #define    XT_ERASE    1    /* erase, when used with FMARK */
  64. #define    XT_LODENS    0    /* low density */
  65. #define    XT_HIDENS    1    /* high density */
  66. #define    XT_LOW        2    /* low speed */
  67. #define    XT_HIGH        3    /* high speed */
  68.  
  69. /* status codes */
  70. #define    XTS_IEI        0x4000        /* interrupt on each iopb */
  71. #define    XTS_EOT        0x80        /* end of tape */
  72. #define    XTS_BOT        0x40        /* beginning of tape */
  73. #define    XTS_FPT        0x20        /* write protected */
  74. #define    XTS_REW        0x10        /* rewinding */
  75. #define    XTS_ONL        0x08        /* on line */
  76. #define    XTS_RDY        0x04        /* drive ready */
  77. #define    XTS_DBY        0x02        /* data busy */
  78. #define    XTS_FBY        0x01        /* formatter busy */
  79. #define XTS_BITS "\1FBSY\2DBSY\3RDY\4ONL\5REW\6PROT\7BOT\10EOT"
  80.  
  81. /* error codes */
  82. #define    XTE_NOERROR    0x00
  83. #define    XTE_EOF        0x1E
  84. #define    XTE_SOFTERR    0x1F        /* corrected data err */
  85. #define    XTE_SHORTREC    0x22
  86. #define    XTE_LONGREC    0x23
  87. #define    XTE_BOT        0x30
  88. #define    XTE_EOT        0x31
  89.